<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>FileReadLine</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/default.css" rel="stylesheet" type="text/css">
</head>
<body>

<h1>FileReadLine</h1>

<p>读取文件指定行的文本并保存到 <a href="../Variables.htm">变量</a> 中.</p>

<pre class="Syntax">FileReadLine, OutputVar, Filename, LineNum</pre>
<h3>参数</h3>
<table class="info">
  <tr> 
    <td>OutputVar</td>
    <td>用于保存获取的数据的 <a href="../Variables.htm">变量</a> 名称. </td>
  </tr>
  <tr> 
    <td width="15%">Filename</td>
    <td width="85%">需访问的文件的名称, 如果没有指定绝对路径则假定在 <a href="../Variables.htm#WorkingDir">A_WorkingDir</a> 中. 支持 Windows 和 Unix 格式; 即文件的行结束符可以是回车和换行符 (`r`n) 或只是单独的 (`n).</td>
  </tr>
  <tr>
    <td>LineNum</td>
    <td><p>需读取的行号 (首行为 1, 第二行为 2, 等等). 可以为 <a href="../Variables.htm#Expressions">表达式</a>.</p>
    <p>如果指定的行号大于文件的行数, <a href="../misc/ErrorLevel.htm">ErrorLevel</a> 被设置为 1 并且 <em>OutputVar</em> 不会发生变化. 当指定的行号为文件的最后一行同时此行为空并且不是以新行/CRLF 结束时也可能发生这种情况.</p></td>
  </tr>
</table>

<h3>返回值</h3>
<p>成功时 <a href="../misc/ErrorLevel.htm">ErrorLevel</a> 被设置为 0. 否则它被设置为 1 并且 <em>OutputVar</em> 的原始内容不会发生变化.</p>
<p><a href="../Variables.htm#LastError">A_LastError</a> 被设置为操作系统 GetLastError() 函数返回的结果.</p>

<h3>备注</h3>
<p>强烈建议仅对于小文件或只需要单行文本的情况时使用此命令. 要扫描并处理大量行的文本 (一行接一行), 使用 <a href="LoopReadFile.htm">文件读取循环</a> 性能更好. 要读取整个文件到变量中, 使用 <a href="FileRead.htm">FileRead</a>.</p>
<p>虽然任何出现在行开始或末尾的 Tab 或空格都会写入到 <em>OutputVar</em> 中, 但换行符 (`n) 是个例外. 当 <a href="AutoTrim.htm">AutoTrim</a> 设置打开 (默认值) 时, 任何变量都可以通过赋值给自己来截除变量两端的 Tab 和空格. 例如: MyLine = %MyLine%</p>
<p>最大可以读取包含 65,534 字符的长行. 如果行的长度超过这个极限, 此命令无法读取剩余的字符 (此时应使用 <a href="FileRead.htm">FileRead</a> 或 <a href="LoopReadFile.htm">文件读取循环</a> 代替).</p>
<h3>相关</h3>
<p><a href="FileOpen.htm">FileOpen</a>/<a href="../objects/File.htm#ReadLine">File.ReadLine()</a>, <a href="FileRead.htm">FileRead</a>, <a href="FileAppend.htm">FileAppend</a>, <a href="LoopReadFile.htm">文件读取循环</a>, <a href="IniRead.htm">IniRead</a> </p>
<h3>示例</h3>
<pre class="NoIndent">Loop
{
    FileReadLine, line, C:\My Documents\ContactList.txt, %A_Index%
    if ErrorLevel
        break
    MsgBox, 4, , Line #%A_Index% is &quot;%line%&quot;.  Continue?
    IfMsgBox, No
        return
}
MsgBox, The end of the file has been reached or there was a problem.
return</pre>

</body>
</html>
